#include<stdio.h>

int main(){
    int n, m, fht[100], a, b, c;
    
    scanf("%d", &n);
    for(int i = 0; i < n; i++){
        scanf("%d", &fht[i]);
    }
    scanf("%d", &m);
    for(int i = 0; i < m; i++){
        scanf("%d %d %d", &a, &b, &c);
        for(int j = a - 1; j < b; j++){
            fht[j] += c;
        }
    }
    for(int i = 0; i < n; i++){
        printf("%d ", fht[i]);
    }
    return 0;
}

/*链接：https://ac.nowcoder.com/acm/problem/22221
来源：牛客网

牛村村口有一排防护塔，建的越高防护范围越广。
牛可乐被村长安排去建塔，他每天的工作是给连续的几个塔都建高X米，请问等他工作了m天以后每个防护塔的高度分别是多少？
输入描述:
第一行输入一个整数n,表示防护塔的数量。
第二行输入n个数，表示每个防护塔的初始高度。
第三行输入一个整数m，表示牛可乐的工作天数。
接下来m行每行三个整数a,b,c，表示给第a个塔到第b个塔增建c的高度。
1 <= n,m <= 100, 1 <= a, b <= n, 1 <= c <= 1000*/